package com.medeiros.upmoney.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class MetaTest_percentualGasto {

	private double valor;
	private double  gasto;
	private double perce;
	private String msg;
	
	public MetaTest_percentualGasto(double valor, double gasto, double perce,
			String msg) {
		super();
		this.valor = valor;
		this.gasto = gasto;
		this.perce = perce;
		this.msg = msg;
	}

	@Test
	public void test(){
		Limite meta = new Limite();
		meta.setValor(new BigDecimal(valor));
		meta.setGasto(new BigDecimal(gasto));
		BigDecimal percentualGasto = meta.getPercentualGasto();
		Assert.assertEquals(msg, perce, percentualGasto.doubleValue(), 0.001);
	}
	
	@Parameters
	public static Collection<Object[]> casos(){
		Collection<Object[]> casos = new ArrayList<Object[]>();
		casos.add(new Object[]{50, 0.0, 0.0, "gasto nulo"});
		casos.add(new Object[]{50, 35.0, 0.7, "gasto menor do que a meta"});
		casos.add(new Object[]{50, 50.0, 1.0, "gasto igual a meta"});
		casos.add(new Object[]{50, 55.0, 1.1, "gasto maior do que a meta"});
		casos.add(new Object[]{50, 75.0, 1.5, "gasto maior do que a meta"});
		return casos;
	}
}
